#include "stdafx.h"
#include "options_def.h"

UINT opts_configuration_values[OPTS_COUNT] = {
	1318069356, // OPT_RCLICK
	1318069373, // OPT_MCLICK
	1318069660, // OPT_DROP
	1318069999, // OPT_HOVER
	1329809759, // OPT_THUMB_REORDER
	1326387462, // OPT_THUMB_ACTIVEMIN
	1318070012, // OPT_PINNED_REMOVEGAP
	1318070048, // OPT_PINNED_DBLCLICK
	1318069425, // OPT_GROUPING
	1322745792, // OPT_GROUPING_OPENNEAR
	1318069475, // OPT_GROUPING_NOPINNED
	1318069940, // OPT_GROUPING_RIGHTDRAG
	1321127752, // OPT_COMBINING
	1319067226, // OPT_COMBINING_DEACTIVE
	1318069546, // OPT_COMBINING_DEONHOVER
	1318069553, // OPT_COMBINING_DE_LABELS
	1318069604, // OPT_COMBINED_LCLICK
	1318069808, // OPT_WHEEL_CYCLE
	1318069834, // OPT_WHEEL_CYCLE_SKIPMIN
	1318069878, // OPT_WHEEL_MINTASKBAR
	1318069924, // OPT_WHEEL_MINTHUMB
	1322639717, // OPT_WHEEL_VOLTASKBAR
	1322639729, // OPT_WHEEL_VOLNOTIFY
	1318069751, // OPT_EMPTYDBLCLICK
	1318069695, // OPT_EMPTYMCLICK
	1383174804, // OPT_OTHER_NOSTARTBTN
	1321056220, // OPT_OTHER_NOSHOWDESK
	1365090333, // OPT_OTHER_CLOCKSHOWSEC
	1321056197, // OPT_OTHER_EXTRAEMPTY
};

int opts_max_values[OPTS_COUNT] = {
	1, // OPT_RCLICK
	3, // OPT_MCLICK
	1, // OPT_DROP
	3, // OPT_HOVER
	1, // OPT_THUMB_REORDER
	1, // OPT_THUMB_ACTIVEMIN
	1, // OPT_PINNED_REMOVEGAP
	1, // OPT_PINNED_DBLCLICK
	1, // OPT_GROUPING
	1, // OPT_GROUPING_OPENNEAR
	1, // OPT_GROUPING_NOPINNED
	1, // OPT_GROUPING_RIGHTDRAG
	2, // OPT_COMBINING
	1, // OPT_COMBINING_DEACTIVE
	1, // OPT_COMBINING_DEONHOVER
	1, // OPT_COMBINING_DE_LABELS
	2, // OPT_COMBINED_LCLICK
	1, // OPT_WHEEL_CYCLE
	1, // OPT_WHEEL_CYCLE_SKIPMIN
	1, // OPT_WHEEL_MINTASKBAR
	1, // OPT_WHEEL_MINTHUMB
	1, // OPT_WHEEL_VOLTASKBAR
	1, // OPT_WHEEL_VOLNOTIFY
	8, // OPT_EMPTYDBLCLICK
	8, // OPT_EMPTYMCLICK
	1, // OPT_OTHER_NOSTARTBTN
	1, // OPT_OTHER_NOSHOWDESK
	1, // OPT_OTHER_CLOCKSHOWSEC
	1, // OPT_OTHER_EXTRAEMPTY
};

#define RET_RULES(...) {static OPTS_STRUCT_RULES temp_array_##__LINE__[] = {__VA_ARGS__}; return temp_array_##__LINE__;}

OPTS_STRUCT_RULES *opts_dependences_rules(int pOptions[OPTS_COUNT], int nOption)
{
	if(pOptions[nOption])
	{
		switch(nOption)
		{
		case OPT_COMBINING_DE_LABELS:
			if(pOptions[OPT_COMBINING_DEACTIVE] == 0 && pOptions[OPT_COMBINING_DEONHOVER] == 0)
				RET_RULES(OPT_COMBINING_DEACTIVE, 1, OPT_COMBINING_DEONHOVER, 1, -1, 0);
			break;

		case OPT_WHEEL_CYCLE:
			RET_RULES(OPT_WHEEL_MINTASKBAR, 0, -1, 0);

		case OPT_WHEEL_CYCLE_SKIPMIN:
			RET_RULES(OPT_WHEEL_CYCLE, 1, OPT_WHEEL_MINTASKBAR, 0, -1, 0);

		case OPT_WHEEL_MINTASKBAR:
			RET_RULES(OPT_WHEEL_CYCLE, 0, OPT_WHEEL_CYCLE_SKIPMIN, 0, -1, 0);

		case OPT_WHEEL_VOLTASKBAR:
			RET_RULES(OPT_WHEEL_VOLNOTIFY, 0, -1, 0);

		case OPT_WHEEL_VOLNOTIFY:
			RET_RULES(OPT_WHEEL_VOLTASKBAR, 0, -1, 0);
		}
	}
	else
	{
		switch(nOption)
		{
		case OPT_COMBINING_DEACTIVE:
		case OPT_COMBINING_DEONHOVER:
			if(pOptions[OPT_COMBINING_DEACTIVE] == 0 && pOptions[OPT_COMBINING_DEONHOVER] == 0)
				RET_RULES(OPT_COMBINING_DE_LABELS, 0, -1, 0);
			break;

		case OPT_WHEEL_CYCLE:
			RET_RULES(OPT_WHEEL_CYCLE_SKIPMIN, 0, -1, 0);
		}
	}

	return NULL;
}

#undef RET_RULES
